//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2003 Intrinsyc Europe Ltd.
//////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2004 Siemens AG
//
// Version: 1.1.2.5
// Date:    11. Jan. 2006
//////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright 2006 Marvell International Ltd.
// All Rights Reserved
//


// Function prototypes
void RHA_Init(void);
void RHA_DeInit(void);
BOOL RHA_RadioPwrOn(void);
BOOL RHA_RadioPwrOff(void);
BOOL RHA_IsRadioPwrOn(void);
BOOL RHA_ActivateVoicePath(DWORD dwTxAudioMode, DWORD dwRxAudioMode);
BOOL RHA_DeactivateVoicePath(void);
BOOL RHA_AdjustTxVolume(DWORD dwAudioMode, DWORD dwVolume);
BOOL RHA_AdjustRxVolume(DWORD dwAudioMode, DWORD dwVolume);
BOOL RHA_GetRHAVersion(DWORD *pdwVersion);
BOOL RHA_ConfirmAudioMode(DWORD *dwTxAudioMode, DWORD *dwRxAudioMode);
DWORD RHA_SystemPowerChange(CEDEVICE_POWER_STATE CurrPwrState, CEDEVICE_POWER_STATE NewPwrState, DWORD dwCurrModuleState, DWORD dwNewDefaultModuleState, BOOL fOngoing, BOOL fQuery);

/*
 Debug Zones.
 */
#ifdef DEBUG_FILE

// Redirect debug to a file
#undef DEBUGMSG
#define DEBUGMSG(a, printf_exp) ((void)((a)?(DbgWrite printf_exp),1:0))

#define ZONE_INIT       1
#define ZONE_OPEN       1
#define ZONE_READ       1
#define ZONE_WRITE      1
#define ZONE_CLOSE      1
#define ZONE_IOCTL      1
#define ZONE_THREAD     1
#define ZONE_EVENTS     1
#define ZONE_CRITSEC    1
#define ZONE_FLOW       1
#define ZONE_IR         1
#define ZONE_USR_READ   1
#define ZONE_ALLOC      1
#define ZONE_FUNCTION   1
#define ZONE_WARN       1
#define ZONE_ERROR      1

#else   // DEBUG_FILE

#ifdef DEBUG

#define ZONE_INIT       DEBUGZONE(0)
#define ZONE_OPEN       DEBUGZONE(1)
#define ZONE_READ       DEBUGZONE(2)
#define ZONE_WRITE      DEBUGZONE(3)
#define ZONE_CLOSE      DEBUGZONE(4)
#define ZONE_IOCTL      DEBUGZONE(5)
#define ZONE_THREAD     DEBUGZONE(6)
#define ZONE_EVENTS     DEBUGZONE(7)
#define ZONE_CRITSEC    DEBUGZONE(8)
#define ZONE_FLOW       DEBUGZONE(9)
#define ZONE_IR         DEBUGZONE(10)
#define ZONE_USR_READ   DEBUGZONE(11)
#define ZONE_ALLOC      DEBUGZONE(12)
#define ZONE_FUNCTION   DEBUGZONE(13)
#define ZONE_WARN       DEBUGZONE(14)
#define ZONE_ERROR      DEBUGZONE(15)
#else

#ifdef FORCE_RETAIL_DEBUG
// As Merlin & Stinger do not support debug change to using retail msgs
#undef DEBUGMSG
#define DEBUGMSG RETAILMSG
#define ZONE_INIT       1
#define ZONE_OPEN       0
#define ZONE_READ       0
#define ZONE_WRITE      0
#define ZONE_CLOSE      0
#define ZONE_IOCTL      0
#define ZONE_THREAD     0
#define ZONE_EVENTS     0
#define ZONE_CRITSEC    0
#define ZONE_FLOW       0
#define ZONE_IR         0
#define ZONE_USR_READ   0
#define ZONE_ALLOC      0
#define ZONE_FUNCTION   1
#define ZONE_WARN       1
#define ZONE_ERROR      1
#endif

#endif

#endif // DEBUG_FILE

